package com.wicket.okrframework.integration.dto;

import com.wicket.okrframework.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
import lombok.Data;

@Data
public class OrgClassDto extends BaseDto implements Serializable {

  /**
   * 类型字典ID:
   */
  @ApiModelProperty("类型字典ID")
  private String typeDictionaryId;

  /**
   * 类型字典编码:
   */
  @ApiModelProperty("类型字典编码")
  private String typeDictionaryCode;

  /**
   * 类型字典名称:
   */
  @ApiModelProperty("类型字典名称")
  private String typeDictionaryName;

  /**
   * 排序:
   */
  @ApiModelProperty("排序")
  private Long orderNumber;

  /**
   * 操作时间:
   */
  @ApiModelProperty("操作时间")
  private Date operateTime;

  /**
   * 主体生命周期:
   */
  @ApiModelProperty("主体生命周期")
  private String subjectLifeCycle;

  /**
   * 主题标识
   */
  @ApiModelProperty("主题标识")
  private String themeCode;

  /**
   * 是否系统数据 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否系统数据")
  private String isSystemData;

  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    if (!super.equals(o)) return false;
    OrgClassDto that = (OrgClassDto) o;
    return (
      typeDictionaryId == that.typeDictionaryId &&
      typeDictionaryCode == that.typeDictionaryCode &&
      typeDictionaryName == that.typeDictionaryName &&
      orderNumber == that.orderNumber &&
      operateTime == that.operateTime &&
      subjectLifeCycle == that.subjectLifeCycle &&
      themeCode == that.themeCode &&
      isSystemData == that.isSystemData
    );
  }

  @Override
  public int hashCode() {
    return Objects.hash(
      super.hashCode(),
      typeDictionaryId,
      typeDictionaryCode,
      typeDictionaryName,
      orderNumber,
      operateTime,
      subjectLifeCycle,
      themeCode,
      isSystemData
    );
  }
}
